//
//  ICObjects.h
//  Charles
//
//  Created by Charles on 2017/6/30.
//  Copyright © 2017年 charles. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "IteratorProtocal.h"

@interface MenuItem : NSObject

@property (nonatomic,copy) NSString *name;
@property (nonatomic,copy) NSString *desc;
@property (nonatomic,assign) BOOL vegetarian;
@property (nonatomic,assign) double price;

- (instancetype)initWithName:(NSString *)name desc:(NSString *)desc vegetarian:(BOOL)vegetarian price:(double)price;

@end

@interface PancakeHouseMenu : NSObject <Menu>

@end

@interface PancakeHouseMenuIterator:NSObject<Iterator>

- (instancetype)initWithMenuItems:(NSMutableArray<MenuItem *> *)menuItems;

@end


@interface DinerMenu : NSObject <Menu>

@end

@interface DinerMenuIterator : NSObject<Iterator>

- (instancetype)initWithMenuItems:(NSMutableArray<MenuItem *> *)menuItems;

@end

@interface CafeMenu : NSObject<Menu>

@end

@interface CafeMenuIterator : NSObject<Iterator>

- (instancetype)initWithMenuItems:(NSMutableArray<MenuItem *> *)menuItems;

@end


@interface Waitress : NSObject

- (instancetype)initWithHouseMenu:(id<Menu>)houseMenu dinerMenu:(id<Menu>)dinerMenu cafeMenu:(id<Menu>)cafeMenu;

- (void)printMenu;

@end


/**
 改造后的女服务员
 */
@interface Waitress2 : NSObject

- (void)printMenu;

- (instancetype)initWithMenus:(NSArray *)menus;

@end



